﻿using System;
using System.Collections.Generic;
using System.Windows.Forms;
using EvaluacionExalmarEntidades;
using EvaluacionExalmarLogicaNegocio;
using GlobalesUtilitarios;

namespace appEvaluacionExalmar
{
// ReSharper disable InconsistentNaming
    public partial class frmPresentacion : Form
// ReSharper restore InconsistentNaming
    {
        public EmpleadoInfo OEmpleado;

        public frmPresentacion()
        {
            InitializeComponent();
        }

        private void frmPresentacion_Load(object sender, EventArgs e)
        {
            try
            {
                gvEvaluados.AutoGenerateColumns = false;
                lblMensaje.Text = @"Bienvenido: " + OEmpleado.Nombres + @" " + OEmpleado.ApellidoPaterno + @" " +
                                  OEmpleado.ApellidoMaterno;
                CargarEvaluados();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, @"Evaluación de Personal", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

        }

        private void CargarEvaluados()
        {
            var oJerarquia = new JerarquiaInfo(OEmpleado.IdEmpleado, null, null);
            var oJefes = new Jerarquia().ListarJefes(oJerarquia);
            var oSubordinados = new Jerarquia().ListarSubordinados(oJerarquia);
            var oAutoevaluacion = new Jerarquia().ListarAutoevaluación(oJerarquia);

            var oEvaluados = new List<JerarquiaInfo>();

            for (int i=0; i<= oJefes.Count-1; i++)
            {
                oEvaluados.Add(oJefes[i]);
            }

            for (int i = 0; i <= oSubordinados.Count - 1; i++)
            {
                oEvaluados.Add(oSubordinados[i]);
            }

            for (var i = 0; i <= oAutoevaluacion.Count - 1; i++)
            {
                oEvaluados.Add(oAutoevaluacion[i]);
            }

            gvEvaluados.DataSource = oEvaluados;
            Generales.CellFormat(gvEvaluados);
            gvEvaluados.ClearSelection();
        }


        private void btnEvaluar_Click(object sender, EventArgs e)
        {
            var oEvaluado = new EmpleadoInfo();
            if (gvEvaluados.CurrentRow != null)
            {
                var nFila = gvEvaluados.CurrentRow.Index;
                if (nFila == -1)
                {
                    MessageBox.Show(@"Debe seleccionar un colaborador a evaluar", @"Evaluación de Personal",
                                    MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    oEvaluado.IdEmpleado = Int32.Parse(gvEvaluados.Rows[nFila].Cells[0].Value.ToString());
                    oEvaluado.Nombres = gvEvaluados.Rows[nFila].Cells[3].Value.ToString();
                    oEvaluado.ApellidoPaterno = gvEvaluados.Rows[nFila].Cells[4].Value.ToString();
                    oEvaluado.ApellidoMaterno = gvEvaluados.Rows[nFila].Cells[5].Value.ToString();
                    oEvaluado.EtapaContribucion = Int32.Parse(gvEvaluados.Rows[nFila].Cells[6].Value.ToString());
                }
            }
            

            var frmEvaluacion = new frmEvaluacion {OEvaluado = oEvaluado, OEvaluador = OEmpleado};
            frmEvaluacion.Show();
            Hide();
        }

    }
}
